import java.io.*;
import java.nio.Buffer;
import java.util.Arrays;

public class WenJian {
    public static void main(String[] args) {
        // 创建一个File对象，指向"src"目录
        File f = new File("src");

        // 检查是否为目录，因为File对象可以表示文件或目录
        if (f.isDirectory()){
            // 获取目录下的所有文件和文件夹的名称
            String[] fl = f.list();
            // 使用Java 8的Stream API遍历文件和文件夹的名称，并打印出来
            Arrays.stream(fl).forEach(n-> System.out.println(n));
        }
//        File f = new File("src/a.txt");
//        System.out.println(f.getName());
//        System.out.println(f.getPath());
//        System.out.println(f.getAbsoluteFile());
//        System.out.println(f.getParent());
//        System.out.println(f.canRead()?"可以读":"不可以读");
//        System.out.println(f.canWrite()?"可以写":"不可以写");
//        System.out.println(f.isFile()?"是文件":"不是文件");
//        System.out.println(f.isDirectory()?"是文件夹":"不是文件夹");
//        System.out.println(f.isAbsolute()?"是绝对路径":"不是绝对路径");
//        System.out.println(f.lastModified());
//        System.out.println(f.length());
//        System.out.println(f.delete());
//        try{
//            // 创建文件输入流，用于读取名为"src/a.txt"的文件
//            FileInputStream in =  new FileInputStream("src/a.txt");
//            // 使用 InputStreamReader 将文件输入流转换为字符输入流
//            InputStreamReader is = new InputStreamReader(in);
//            // 使用 BufferedReader 包装字符输入流，以提高读取效率并支持按行读取
//            BufferedReader br = new BufferedReader(is);
//            // 创建文件输出流，用于写入名为"src/b.txt"的文件
//            FileOutputStream out = new FileOutputStream("src/b.txt");
//            // 使用 OutputStreamWriter 将文件输出流转换为字符输出流
//            OutputStreamWriter os = new OutputStreamWriter(out);
//            // 使用 BufferedWriter 包装字符输出流，以提高写入效率并支持换行操作
//            BufferedWriter ws = new BufferedWriter(os);
//
//            // 逐行读取文件内容并写入另一文件，直到文件结束
//            String len = null;
//            while((len = br.readLine()) != null){
//                // 将数据长度len写入输出流ws，以便接收方可以根据长度进行读取
//                ws.write(len);
//                // 写入一个新行符，用于分隔输出流中的不同数据项或消息
//                ws.newLine();
//            }
//
//            // 关闭输入和输出流，释放系统资源
//            br.close();
//            ws.close();
//        }catch (Exception e){
//            // 捕获并处理可能发生的异常，例如文件不存在或读写错误
//            e.getMessage();
//        }
//        try {
//            FileInputStream in = new FileInputStream("src/a.txt");
//            FileOutputStream out = new FileOutputStream("src/b.txt");
//            int len = 0;
//            long time = System.currentTimeMillis();
//            while ((len = in.read()) !=-1){
//                out.write(len);
//            }
//            long time1 = System.currentTimeMillis();
//            System.out.println("复制文件花费的时间为："+(time1-time));
//            in.close();
//            out.close();
//        }catch(Exception e){
//            e.getMessage();
//        }

//        缓冲流
//        try{
//        BufferedInputStream in = new BufferedInputStream(new FileInputStream("src/a.txt"));
//        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("src/b.txt"));
//        long time = System.currentTimeMillis();
//        int len = 0;
//        while((len = in.read()) != -1){
//             out.write(len);
//            }
//            long time1 = System.currentTimeMillis();
//            System.out.println("时间："+(time1-time));
//            in.close();
//            out.close();
//
//        }catch(Exception e){
//            e.getMessage();
//        }
//    try {
//        FileReader r = new FileReader("src/a.txt");
//        FileWriter w = new FileWriter("src/b.txt",true);
//        long len = 0;
//        int i = 10;
//        while ((len = r.read()) != -1) {
//            System.out.print((char)len);
//        }
//        while (i>0){
//            w.write("黑白");
//            i--;
//        }
//        r.close();
//        w.close();
//    }catch (Exception e){
//        e.getMessage();
//    }
//        try {
//            FileReader re = new FileReader("a.txt");
//            FileWriter w = new FileWriter("b.txt");
//            int len = 0;
//            char[] buff = new char[1024];
//            while((len = re.read()) != -1){
//                w.write(buff,0,len);
//
//            }
//            re.close();
//            w.close();
//        }catch (Exception e){
//            e.getMessage();
//        }
    }
}
